import request from '@/utils/request.ts'

const baseURL = '/discussPost'

/**
 * @name 查询所有帖子信息
 * @description 分页查询帖子信息-后台查询
 */
function allPosts(data: any) {
  return request({
    method: 'GET',
    url: `${baseURL}/allPosts`,
    data
  })
}

/**
 * @name 实际删除帖子
 * @description 删除该帖子id的帖子
 */
function deletePost(postId: any) {
  return request({
    method: 'POST',
    url: `${baseURL}/delete/post/${postId}`
  })
}

/**
 * @name 逻辑删除删除帖子
 * @description 删除该帖子id的帖子
 */
function removePost(postId: any) {
  return request({
    method: 'POST',
    url: `${baseURL}/delete/post/${postId}/3`
  })
}

/**
 * @name 查询帖子详情以及其评论信息
 * @description 分页查询后已经获得了对应的帖子id，而该接口用于点击某帖子获取其所有的详情和评论，pageNum是对帖子的评论的页号
 */
function detail(data: any) {
  return request({
    method: 'GET',
    url: `${baseURL}/detail/${data.postId}/${data.pageNum}`
  })
}

/**
 * @name 查询用户可能感兴趣的帖子
 * @description 这个是活跃用户才可能查阅到
 */
function maybe(data: any) {
  return request({
    method: 'GET',
    url: `${baseURL}/maybe/${data.userId}/${data.pageNum}/${data.pageSize}`
  })
}

/**
 * @name 发布新帖子
 * @description 单用户发布文章
 */
function newPost(data: any) {
  return request({
    method: 'POST',
    url: `${baseURL}/newPost`,
    data
  })
}

/**
 * @name 查询帖子信息
 * @description 分页查询正常帖子信息
 */
function normalPosts(data: any) {
  return request({
    method: 'GET',
    url: `${baseURL}/normalPosts`,
    data
  })
}

/**
 * @name 查询个人帖子
 * @description 分页查询个人帖子
 */
function own(data: any, userId: any) {
  return request({
    method: 'GET',
    url: `${baseURL}/own/${userId}`,
    data
  })
}

/**
 * @name 查询用户关注的近期帖子
 * @description 查询用户关注的近期帖子
 */
function recent(data: any) {
  return request({
    method: 'GET',
    url: `${baseURL}/recent/${data.userId}/${data.pageNum}/${data.pageSize}`
  })
}

/**
 * @name 搜索帖子
 * @description 模糊查询
 */
function search(query: any, data: any) {
  return request({
    method: 'GET',
    url: `${baseURL}/search/${query.pageNum}/${query.pageSize}`,
    data
  })
}

export default {
  allPosts,
  deletePost,
  removePost,
  detail,
  maybe,
  newPost,
  normalPosts,
  own,
  recent,
  search
}
